package io.geekidea.springbootplus.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.system.entity.SysCategory;
import io.geekidea.springbootplus.system.param.SysCategoryPageParam;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;

public interface SysCategoryService extends BaseService<SysCategory> {

    /*
     *1、分页显示商品分类（不要条件查询）
      2、删除商品分类（如果商品分类下有商品信息如何处理？ 级联删除呢？ 还是提示不能删？  先把商品分类下的商品信息提前转移到其他分类下）
      3、根据主键id获取商品分类详情
      4、修改商品分类 (如果分类图标不上传的话，要保持原来的图标)
      5、新增商品分类 （上传分类图标）
      6、根据父分类parentid获取该分类下所有的子分类
     * */
    boolean saveCategory(SysCategory category) throws Exception;

    boolean updateCategory(SysCategory category) throws Exception;

    boolean deleteCategoryById(Integer id) throws Exception;

    SysCategory getCategoryById(Serializable id) throws Exception;

    Paging<SysCategory> getCategoryPageList() throws Exception;

    Paging<SysCategory> getChildrenCategoryByParentId(Integer parentId) throws Exception;

    SysCategory findSysCategoryById(Integer id);

    Paging<SysCategory> getSysCategoryPageListByParam(SysCategoryPageParam sysCategoryPageParam);


}
